import { getDetailUserInfo, getInfoApi, loginApi } from '@/api/user'
import { setToken, getToken, removeToken } from '@/utils/auth'
export default {
  namespaced: true,
  state: {
    token: getToken(),
    userInfo: {}
  },
  mutations: {
    setToken(state, token) {
      state.token = token // 设置token  只是修改state的数据  123 =》 1234
      // vuex变化 => 缓存数据
      setToken(token) // vuex和 缓存数据的同步
    },
    // 删除缓存
    removeToken(state) {
      state.token = null // 删除vuex的token
      removeToken() // 先清除 vuex  再清除缓存 vuex和 缓存数据的同步
    },
    // 用户个人信息
    getUserInfo(state, val) {
      state.userInfo = val
    },
    // 删除用户资料
    removeUserInfo(state) {
      state.userInfo = {}
    }
  },
  actions: {
    async loginAction(context, data) {
      let n = await loginApi(data)
      console.log(n)
      context.commit('setToken', n)
    },
    // 获取用户个人信息
    async AxioxUserInfo(context) {
      let n = await getInfoApi()
      // 获取用户详细资料
      let n2 = await getDetailUserInfo(n.userId)

      context.commit('getUserInfo', { ...n, ...n2 })
    },
    // 退出操作
    quitAxios(context) {
      context.commit('removeToken')
      context.commit('removeUserInfo')
    }
  },
  getters: {}
}
